using System;
using JGSY.CMS.LowCode.Platform.Domain.Interfaces;

namespace Domain.Entities
{
    /// <summary>
    /// 报表定义实体
    /// 用于存储系统中的报表模板和配置信息
    /// </summary>
    public class Report : ITenantEntity
    {
        /// <summary>
        /// 报表标识符
        /// </summary>
        public long Id { get; set; }
        
        /// <summary>
        /// 报表名称
        /// 报表的显示名称
        /// </summary>
        public string Name { get; set; } = string.Empty;
        
        /// <summary>
        /// 报表配置
        /// 以JSON格式存储的报表查询条件、字段、图表等配置
        /// </summary>
        public string Config { get; set; } = string.Empty;
        
        /// <summary>
        /// 调度计划
        /// Cron表达式格式的自动生成计划
        /// </summary>
        public string Schedule { get; set; } = string.Empty;
        
        /// <summary>
        /// 报表状态
        /// 0-禁用, 1-启用, 2-暂停
        /// </summary>
        public byte Status { get; set; }
        
        /// <summary>
        /// 创建者标识符
        /// 创建该报表的用户ID
        /// </summary>
        public long CreatedBy { get; set; }
        
        /// <summary>
        /// 创建时间
        /// 报表的创建时间戳
        /// </summary>
        public DateTime CreatedAt { get; set; }
        
        /// <summary>
        /// 租户标识符
        /// </summary>
        public string TenantId { get; set; } = string.Empty;
    }
}
